interface_macros.h 是 LumeMeta 元对象系统的核心宏定义文件，它为整个系统提供了接口和类注册的基础设施。以下是其主要作用：
1.引用计数宏：
META_IMPLEMENT_REF_COUNT_NO_ONDESTROY()

作用：为实现 IInterface 的类提供线程安全的引用计数机制
特性：
使用原子操作 AtomicIncrement/AtomicDecrement
当引用计数降为 0 时自动 delete this
无析构回调版本（简化版本）

2.拷贝/移动控制宏
META_DEFAULT_COPY(className)
META_DEFAULT_MOVE(className)
META_DEFAULT_COPY_MOVE(className)
META_NO_COPY(className)
META_NO_MOVE(className)
META_NO_COPY_MOVE(className)
作用：控制类的拷贝和移动语义
重要性：元对象系统使用引用语义（基于智能指针），通常需要禁用拷贝/移动

3.析构/构造函数
META_INTERFACE_CTOR_DTOR(className)
META_NO_COPY_MOVE_INTERFACE(className)


作用：生成默认构造函数和虚析构函数
模式：接口类通常需要虚析构函数以支持多态删除

4.接口定义宏
META_INTERFACE3 - 三参数版本：
META_INTERFACE3(basename, name, intf_name)
参数：
basename：基类（通常是 CORE_NS::IInterface）
name：当前接口类名
intf_name：接口的 UID（可以是字符串字面量、TypeId 或预定义的 InterfaceId）
功能：
声明静态 INTERFACE_INFO 常量
生成接口的唯一 UID
提供类型安全的智能指针类型（Ptr/ConstPtr/WeakPtr/ConstWeakPtr）
禁用拷贝和移动
生成默认构造/析构函数
META_INTERFACE2 - 两参数版本：
META_INTERFACE2(basename, name)
功能：期望存在预定义的 InterfaceId::name
使用场景：当使用 META_REGISTER_INTERFACE 预注册接口时

5.接口/类注册支持 功能和META_INTERFACE
注册接口：
META_REGISTER_INTERFACE(ICallContext, "2e9cac45-0e61-4152-8b2a-bc1c65fded3d")
作用：在 InterfaceId 命名空间中创建接口信息常量
位置：types.h:217-225


在系统中的角色：
1. 元对象协议的基础
这些宏构成了类似 Qt QObject 的元对象系统
为运行时类型识别（RTTI）提供基础设施
支持反射和动态类型转换
2. 语言绑定的支撑
为 ETS/JS 绑定提供类型信息
UID 系统确保跨语言边界的类型安全
智能指针类型简化绑定实现
3. 插件系统的关键
每个插件通过接口暴露功能
UID 用于插件间接口查询
引用计数确保插件生命周期管理


// 1. 注册接口 UID
META_REGISTER_INTERFACE(IAttach, "2cc0d7b9-ccec-474e-acdd-d06fb5aeb714")

// 2. 定义接口类
class IAttach : public CORE_NS::IInterface {
    META_INTERFACE(CORE_NS::IInterface, IAttach)
    // 接口方法...
};

// 3. 实现类
class AnimationController : public IAnimation {
    META_INTERFACE(CORE_NS::IInterface, AnimationController, 
                   "32ccf293-e684-46e3-b733-85f9bbcc703c")
    META_IMPLEMENT_REF_COUNT_NO_ONDESTROY()
    // 实现...
};
